The architecture of high-performance Internet routers has advanced in the last several years to provide increased performance in routing ever-greater volumes of network traffic. It is not uncommon for a router to support numerous protocols as well as several applications for configuration and maintenance of the router tables, protocols, and network policies. These advances have increased the complexity of the router such that the management of applications and protocols running on the router is critical for reliable network performance.
In existing router management technology, the logic to support the applications, protocols, and associated management interfaces is centrally managed in a single master program. This can result in a single point of failure, meaning that even if there is a problem with only one protocol or application or interface, the entire program could crash, bringing the router down with it. In addition, if the master program needs to be updated, for example to accommodate a new protocol, then the master program must be brought down in order to perform the updates, thereby temporarily taking the router out of service.
In an effort to overcome some of the limitations in existing router management technology, management of applications, protocols, and associated management interfaces may be decentralized. However, this means that there will be several processes running simultaneously on both the active Router Protocol (RP) and line cards. These multiple processes may or may not be dependent on other processes which run on the same processor. Furthermore, those processes that are dependent on other processes may only be compatible with certain versions of those other processes. Since the processes share the limited resources of the processor, it is important to insure that the dependent processes are started only when the other processes on which they depend are already running and compatible to avoid taking up valuable resources unnecessarily.